package fr.emse.tatiana.replayable;

import fr.emse.tatiana.remotecontrol.RemoteControl;
import fr.emse.tatiana.replayable.analysis.AnalysisEventListener;
import fr.emse.tatiana.replayable.analysis.IAnalysis;

/**
 * Represents any kind of visualisation which can be synchronised in Tatiana, including
 * Replayables and Enrichments.
 * 
 * @author dyke
 *
 */
public interface IArtefactEditor extends AnalysisEventListener, DiscreteReplayable {


	/**
	 * Remove an analysis from the list of analyses managed by the editor
	 * 
	 * @param a
	 */
	public void removeAnalysis(IAnalysis a);

	/**
	 * Add an analysis to the list of analyses managed by the editor
	 * 
	 * @param a
	 */
	public void addAnalysis(IAnalysis a);

	/**
	 * Provide the editor with the RemoteControl object which it should use
	 * for synchronisation
	 * 
	 * @param remote
	 */
	public void setRemote(RemoteControl remote);

}